﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using System.ComponentModel;
using QuanLyRapChieuPhim.DTO;

namespace QuanLyRapChieuPhim.DAO
{
    class TTDatVeDAO
    {
        DataProvider dp = new DataProvider();

        //public BindingList<TTDatVeDTO> GetList()
        //{

        //    DataTable dt = new DataTable();
        //    BindingList<TTDatVeDTO> ds = new BindingList<TTDatVeDTO>();
        //    if (dp.OpenConnect())
        //    {
        //        dt = dp.SqlExcuteQuery("uproc_GetList_TTDatVe", null);
        //        foreach (DataRow row in dt.Rows)
        //        {
        //            TTDatVeDTO TTDatVe = new TTDatVeDTO();
        //            TTDatVe.MaTTDatVe = int.Parse(row["maTTDatVe"].ToString());
        //            TTDatVe.TenTTDatVe = row["tenTTDatVe"].ToString();
        //            TTDatVe.DiaChi = row["diaChi"].ToString();
        //            ds.Add(TTDatVe);
        //        }
        //        dp.CloseConnect();
        //        return ds;
        //    }
        //    return null;
        //}

        public BindingList<TTDatVeDTO> GetList_QL()
        {

            DataTable dt = new DataTable();
            BindingList<TTDatVeDTO> ds = new BindingList<TTDatVeDTO>();
            if (dp.OpenConnect())
            {
                dt = dp.SqlExcuteQuery("uproc_GetList_TTDatVe_QL", null); 
                foreach (DataRow row in dt.Rows)
                {
                    TTDatVeDTO TTDatVe = new TTDatVeDTO();
                    TTDatVe.DonGia = int.Parse(row["DonGia"].ToString());
                    TTDatVe.MaTaiKhoan = int.Parse(row["MaTaiKhoan"].ToString());
                    TTDatVe.MaTTDatve = int.Parse(row["MaTTDatve"].ToString());
                    TTDatVe.MaVe = int.Parse(row["MaVe"].ToString());
                    TTDatVe.TenDangNhap = row["tenDangNhap"].ToString();
                    TTDatVe.TenSuat = row["tenSuat"].ToString();
                    TTDatVe.TenPhim = row["tenPhim"].ToString();
                    TTDatVe.ThoiGianDat = DateTime.Parse(row["ThoiGianDat"].ToString());
                    TTDatVe.DaXoa = int.Parse(row["DaXoa"].ToString());
                    ds.Add(TTDatVe);
                }
                dp.CloseConnect();
                return ds;  
            }
            return null;
        }

        public BindingList<TTDatVeDTO> GetList_QL_DaXoa()
        {

            DataTable dt = new DataTable();
            BindingList<TTDatVeDTO> ds = new BindingList<TTDatVeDTO>();
            if (dp.OpenConnect())
            {
                dt = dp.SqlExcuteQuery("uproc_GetList_TTDatVe_QL_DaXoa", null);
                foreach (DataRow row in dt.Rows)
                {
                    TTDatVeDTO TTDatVe = new TTDatVeDTO();
                    TTDatVe.DonGia = int.Parse(row["DonGia"].ToString());
                    TTDatVe.MaTaiKhoan = int.Parse(row["MaTaiKhoan"].ToString());
                    TTDatVe.MaTTDatve = int.Parse(row["MaTTDatve"].ToString());
                    TTDatVe.MaVe = int.Parse(row["MaVe"].ToString());
                    TTDatVe.TenDangNhap = row["tenDangNhap"].ToString();
                    TTDatVe.TenSuat = row["tenSuat"].ToString();
                    TTDatVe.TenPhim = row["tenPhim"].ToString();
                    TTDatVe.ThoiGianDat = DateTime.Parse(row["ThoiGianDat"].ToString());
                    TTDatVe.DaXoa = int.Parse(row["DaXoa"].ToString());
                    ds.Add(TTDatVe);
                }
                dp.CloseConnect();
                return ds;  
            }
            return null;
        }

        public BindingList<TTDatVeDTO> GetList_KhachHang(int _Ma)
        {

            DataTable dt = new DataTable();
            BindingList<TTDatVeDTO> ds = new BindingList<TTDatVeDTO>();
            if (dp.OpenConnect())
            {
                SqlParameter[] sqlParameter = 
                { 
                    new SqlParameter("@Ma", _Ma) 
                };
                dt = dp.SqlExcuteQuery("uproc_GetList_TTDatVe_KhachHang", sqlParameter);
                foreach (DataRow row in dt.Rows)
                {
                    TTDatVeDTO TTDatVe = new TTDatVeDTO();
                    TTDatVe.DonGia = int.Parse(row["DonGia"].ToString());
                    TTDatVe.MaTaiKhoan = int.Parse(row["MaTaiKhoan"].ToString());
                    TTDatVe.MaTTDatve = int.Parse(row["MaTTDatve"].ToString());
                    TTDatVe.MaVe = int.Parse(row["MaVe"].ToString());
                    TTDatVe.TenDangNhap = row["tenDangNhap"].ToString();
                    TTDatVe.TenSuat = row["tenSuat"].ToString();
                    TTDatVe.TenPhim = row["tenPhim"].ToString();
                    TTDatVe.ThoiGianDat = DateTime.Parse(row["ThoiGianDat"].ToString());
                    TTDatVe.DaXoa = int.Parse(row["DaXoa"].ToString());
                    ds.Add(TTDatVe);
                }
                dp.CloseConnect();
                return ds;
            }
            return null;
        }

        public TTDatVeDTO GetFromId(int _Ma)
        {
            DataTable dt = new DataTable();
            if (dp.OpenConnect())
            {
                SqlParameter[] sqlParameter = 
                { 
                    new SqlParameter("@Ma", _Ma) 
                };
                dt = dp.SqlExcuteQuery("uproc_GetFromID_TTDatVe", sqlParameter);
                TTDatVeDTO TTDatVe = new TTDatVeDTO();
                foreach (DataRow row in dt.Rows)
                {
                    TTDatVe.DonGia = int.Parse(row["DonGia"].ToString());
                    TTDatVe.MaTaiKhoan = int.Parse(row["MaTaiKhoan"].ToString());
                    TTDatVe.MaTTDatve = int.Parse(row["MaTTDatve"].ToString());
                    TTDatVe.MaVe = int.Parse(row["MaVe"].ToString());
                    TTDatVe.ThoiGianDat = DateTime.Parse(row["ThoiGianDat"].ToString());
                    TTDatVe.DaXoa = int.Parse(row["DaXoa"].ToString());
                }
                dp.CloseConnect();
                return TTDatVe;
            }
            return null;
        }

        public bool Delete(int _Ma)
        {
            if (dp.OpenConnect())
            {
                SqlParameter[] sqlParameter = 
                { 
                    new SqlParameter("@Ma", _Ma) 
                };
                bool kq = dp.SqlExcuteNonQuery("uproc_Delete_TTDatVe", sqlParameter);
                dp.CloseConnect();
                return kq;
            }
            return false;
        }

        public bool Delete_HetHan()
        {
            if (dp.OpenConnect())
            {
                bool kq = dp.SqlExcuteNonQuery("uproc_Delete_TTDatVe_HetHan", null);
                dp.CloseConnect();
                return kq;
            }
            return false;
        }

        public bool UnDelete(int _Ma)
        {
            if (dp.OpenConnect())
            {
                SqlParameter[] sqlParameter = 
                { 
                    new SqlParameter("@Ma", _Ma) 
                };
                bool kq = dp.SqlExcuteNonQuery("uproc_UnDelete_TTDatVe", sqlParameter);
                dp.CloseConnect();
                return kq;
            }
            return false;
        }

        public bool Add(TTDatVeDTO _DTO)
        {
            if (dp.OpenConnect())
            {
                SqlParameter[] sqlParameter = 
                { 
                    new SqlParameter("@MaTaiKhoan", _DTO.MaTaiKhoan), 
                    new SqlParameter("@MaVe", _DTO.MaVe), 
                    new SqlParameter("@DonGia", _DTO.DonGia)
                };
                bool kq = dp.SqlExcuteNonQuery("uproc_Add_TTDatVe", sqlParameter);
                dp.CloseConnect();
                return kq;
            }
            return false;
        }

        public bool Update(TTDatVeDTO _DTO)
        {
            if (dp.OpenConnect())
            {
                SqlParameter[] sqlParameter = 
                { 
                    new SqlParameter("@Ma", _DTO.MaTTDatve), 
                    new SqlParameter("@MaTaiKhoan", _DTO.MaTaiKhoan), 
                    new SqlParameter("@MaVe", _DTO.MaVe), 
                    new SqlParameter("@DonGia", _DTO.DonGia)
                };
                bool kq = dp.SqlExcuteNonQuery("uproc_Update_TTDatVe", sqlParameter);
                dp.CloseConnect();
                return kq;
            }
            return false;
        }

        //public bool CheckExists(int _Ma, string _Ten)
        //{
        //    if (dp.OpenConnect())
        //    {
        //        SqlParameter[] sqlParameter = 
        //        { 
        //            new SqlParameter("@Ma", _Ma), 
        //            new SqlParameter("@TenTTDatVe", _Ten)
        //        };
        //        DataTable dt = dp.SqlExcuteQuery("uproc_CheckExists_TTDatVe", sqlParameter);
        //        dp.CloseConnect();
        //        if (dt.Rows.Count == 0)
        //            return false;
        //        return true;// đã tồn tại
        //    }
        //    return false;
        //}

        public bool BanVe(int _Ma)
        {
            if (dp.OpenConnect())
            {
                SqlParameter[] sqlParameter = 
                { 
                    new SqlParameter("@Ma", _Ma)
                };
                bool kq = dp.SqlExcuteNonQuery("uproc_BanVe_TTDatVe", sqlParameter);
                dp.CloseConnect();
                return kq;
            }
            return false;
        }
    }
}
